package com.hmdp.controller;


import com.hmdp.dto.Result;
import com.hmdp.service.IVoucherOrderService;
import com.hmdp.service.IVoucherService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author 虎哥
 * @since 2021-12-22
 */
@RestController
@RequestMapping("/voucher-order")
public class VoucherOrderController {

    // Autowired和Resource的区别：
    // @Autowired 先根据类型（byType）查找，如果存在多个（Bean）再根据名称（byName）进行查找；
    // @Resource 先根据名称（byName）查找，如果（根据名称）查找不到，再根据类型（byType）进行查找。

    @Resource
    private IVoucherOrderService voucherOrderService;

    /**
     * 实现秒杀下单
     * @param voucherId
     * @return
     */
    @PostMapping("seckill/{id}")
    public Result seckillVoucher(@PathVariable("id") Long voucherId) {
        // 实现秒杀下单有两点需要注意：
        // 1.秒杀是否开始或者结束，如果尚未开始或已经结束则无法下单
        // 2.库存是否充足，不足则无法下单
        return voucherOrderService.seckillVoucher(voucherId);
    }
}
